package com.mmy.service.permissionmenu.impl;

import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.mmy.dao.permission.TSysUserRoleRepository;
import com.mmy.domain.permissionmenu.TSysUserRole;
import com.mmy.domain.sys.TSysUser;
import com.mmy.service.permissionmenu.UserPermissionService;

@Service
public class UserPermissionServiceImpl implements UserPermissionService {

	@Autowired
	private TSysUserRoleRepository tSysUserRoleRepository;

	/**
	 * 创建员工角色权限
	 * 
	 * @author 创建人 hanxl 整理
	 * @date 创建日期 2020.10.29
	 * 
	 *       用处：1、在选择审核通过时需要给员工分派角色 SysUserController中updateReview()函数
	 */
	public void createRolePermission(String checkList, String strUserID, TSysUser sessionSysUser) {
		// TODO Auto-generated method stub
		String[] strRoleIDs = checkList.split(",");
		int iUserID = Integer.parseInt(strUserID);
		for (String strRoleID : strRoleIDs) {

			TSysUserRole tSysUserRole = new TSysUserRole();
			int iRoleID = Integer.parseInt(strRoleID);
			// 获得最大用户角色对照编号
			Object iID = tSysUserRoleRepository.getMaxID();
			// 判断数据库是否存在菜单id 如果存在在最大值基础上加一 如果不存在把最大值置为一
			if (iID == null) {
				tSysUserRole.setID(1);
			} else {
				tSysUserRole.setID(Integer.parseInt(iID.toString()) + 1);
			}
			tSysUserRole.setRoleID(iRoleID);
			tSysUserRole.setUserID(iUserID);
			tSysUserRole.setCreateDate(new Date());
			tSysUserRole.setCreator(sessionSysUser.getUserName());
			// 创建
			tSysUserRoleRepository.save(tSysUserRole.getID());
			tSysUserRoleRepository.save(tSysUserRole);
		}
	}

//员工管理部分修改完删除

	/**
	 * 获取最大流水号
	 * 
	 * @return 返回值说明 流水号
	 * @author 创建人 dingxd
	 * @date 创建日期 2020.11.17
	 */
	public int getMaxID() {
		// 流水号
		Object objCode = tSysUserRoleRepository.getMaxID();
		int iID = 0;
		if (objCode != null) {
			iID = Integer.parseInt(objCode.toString());
		}
		return iID;
	}

	// 员工管理部分修改完删除
	public void save(int ID) {
		// TODO Auto-generated method stub
		tSysUserRoleRepository.save(ID);
	}

	// 员工管理部分修改完删除
	public void save(TSysUserRole tSysUserRole) {
		// TODO Auto-generated method stub
		tSysUserRoleRepository.save(tSysUserRole);
	}

	/**
	 * 进入修改员工页面 通过员工ID查询角色
	 * 
	 * @author 创建人 hanxl
	 * @date 创建日期 2021.03.17
	 */
	public List<TSysUserRole> findByUserID(String strUserID) {
		int iUserID = Integer.parseInt(strUserID);
		return tSysUserRoleRepository.findByUserID(iUserID);
	}

	/**
	 * 查询该员工是否有总经理角色
	 * 
	 * @author 创建人 hanxl
	 * @param i
	 * @date 创建日期 2021.03.17
	 */
	public TSysUserRole findByRoleName(int iUserID, int iRoleID) {
		return tSysUserRoleRepository.findByRoleName(iUserID, iRoleID);
	}

}
